eps=1e-6; lambda=1;
J=@(a1,a2,b1,b2,c1,c2,x)[exp(-b1^2*(c1 - x).^2), exp(-b2^2*(c2 - x).^2), -2*a1*b1*exp(-b1^2*(c1 - x).^2).*(c1 - x).^2, -2*a2*b2*exp(-b2^2*(c2 - x).^2).*(c2 - x).^2, -a1*b1^2*exp(-b1^2*(c1 - x).^2).*(2*c1 - 2*x), -a2*b2^2*exp(-b2^2*(c2 - x).^2).*(2*c2 - 2*x)];
f=@(a1,a2,b1,b2,c1,c2,x) a1*exp(-b1^2*(c1 - x).^2) + a2*exp(-b2^2*(c2 - x).^2);
x=(-4:0.5:4)';
y=[0.00001 0.00726 0.25811 1.87629 1.55654 0.17209 0.00899 0.05511 0.24564 0.60455 0.89370 1.03315 0.51633 0.18032 0.04287 0.00360 0.00045]';
w=[1 1 1 1 -1 1]';
r=y-f(w(1),w(2),w(3),w(4),w(5),w(6),x);
while norm(1/norm(pinv(J(w(1),w(2),w(3),w(4),w(5),w(6),x)))*pinv(J(w(1),w(2),w(3),w(4),w(5),w(6),x))*r,"inf")>eps
    w=w+1/norm(pinv(J(w(1),w(2),w(3),w(4),w(5),w(6),x)))*pinv(J(w(1),w(2),w(3),w(4),w(5),w(6),x))*r;
    r=y-f(w(1),w(2),w(3),w(4),w(5),w(6),x);
end
xx=(-4:0.01:4)';
plot(xx,f(w(1),w(2),w(3),w(4),w(5),w(6),xx),"r");
hold on
scatter(x,y,"*b");